<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qclimage.cpp -->
  <title>QCLImage3D Class Reference</title>
  <link rel="stylesheet" type="text/css" href="style/style.css" />
  <script src="scripts/jquery.js" type="text/javascript"></script>
  <script src="scripts/functions.js" type="text/javascript"></script>
  <script src="./scripts/superfish.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="style/superfish.css" />  <script src="./scripts/narrow.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="style/narrow.css" />
  <!--[if IE]>
<meta name="MSSmartTagsPreventParsing" content="true">
<meta http-equiv="imagetoolbar" content="no">
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
<![endif]-->
</head>
<body class="" onload="CheckEmptyAndLoadList();">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" width="150"><img src="images/qt-logo.png" align="left" border="0" />&nbsp;&nbsp;<img src="images/qtopencl-logo.png" border="0" /></td>
<td width="1">&nbsp;&nbsp;</td><td class="postheader" valign="center"> <a href="index.html"><font color="#004faf">Home</font></a>&nbsp;&middot; <a href="qtopencl-all-classes.html"><font color="#004faf">All Classes</font></a></td>
</table>              <li><a href="modules.html">Modules</a></li>              <li>QtCL</li>
              <li>QCLImage3D</li>
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<h1 class="title">QCLImage3D Class Reference</h1>
<!-- $$$QCLImage3D-brief -->
<p>The QCLImage3D class represents a 3D OpenCL image object. <a href="#details">More...</a></p>
<!-- @@@QCLImage3D -->
<pre class="highlightedCode brush: cpp">    #include &lt;QCLImage3D&gt;</pre><p>Inherits <a href="qclmemoryobject.html">QCLMemoryObject</a>.</p>
<p>This class was introduced in QtOpenCL 4.7.</p>
<ul>
<li><a href="qclimage3d-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-functions"></a>
<h2>Public Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#QCLImage3D">QCLImage3D</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#QCLImage3D-2">QCLImage3D</a></b> ( QCLContext * <i>context</i>, cl_mem <i>id</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#QCLImage3D-3">QCLImage3D</a></b> ( const QCLImage3D &amp; <i>other</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#bytesPerElement">bytesPerElement</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#bytesPerLine">bytesPerLine</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#bytesPerSlice">bytesPerSlice</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#copyTo">copyTo</a></b> ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const QCLImage3D &amp; <i>dest</i>, const size_t[3] <i>destOffset</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#copyTo-2">copyTo</a></b> ( const size_t[3] <i>origin</i>, const QSize &amp; <i>size</i>, const QCLImage2D &amp; <i>dest</i>, const QPoint &amp; <i>destOffset</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#copyTo-3">copyTo</a></b> ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const QCLBuffer &amp; <i>dest</i>, size_t <i>destOffset</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QCLEvent </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#copyToAsync">copyToAsync</a></b> ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const QCLImage3D &amp; <i>dest</i>, const size_t[3] <i>destOffset</i>, const QCLEventList &amp; <i>after</i> = QCLEventList() )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QCLEvent </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#copyToAsync-2">copyToAsync</a></b> ( const size_t[3] <i>origin</i>, const QSize &amp; <i>size</i>, const QCLImage2D &amp; <i>dest</i>, const QPoint &amp; <i>destOffset</i>, const QCLEventList &amp; <i>after</i> = QCLEventList() )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QCLEvent </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#copyToAsync-3">copyToAsync</a></b> ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const QCLBuffer &amp; <i>dest</i>, size_t <i>destOffset</i>, const QCLEventList &amp; <i>after</i> = QCLEventList() )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#depth">depth</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QCLImageFormat </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#format">format</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#height">height</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void * </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#map">map</a></b> ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, QCLMemoryObject::Access <i>access</i>, int * <i>bytesPerLine</i> = 0, int * <i>bytesPerSlice</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QCLEvent </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#mapAsync">mapAsync</a></b> ( void ** <i>ptr</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, QCLMemoryObject::Access <i>access</i>, const QCLEventList &amp; <i>after</i> = QCLEventList(), int * <i>bytesPerLine</i> = 0, int * <i>bytesPerSlice</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#read">read</a></b> ( void * <i>data</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, int <i>bytesPerLine</i> = 0, int <i>bytesPerSlice</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QCLEvent </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#readAsync">readAsync</a></b> ( void * <i>data</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const QCLEventList &amp; <i>after</i> = QCLEventList(), int <i>bytesPerLine</i> = 0, int <i>bytesPerSlice</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#width">width</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#write">write</a></b> ( const void * <i>data</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, int <i>bytesPerLine</i> = 0, int <i>bytesPerSlice</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QCLEvent </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#writeAsync">writeAsync</a></b> ( const void * <i>data</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const QCLEventList &amp; <i>after</i> = QCLEventList(), int <i>bytesPerLine</i> = 0, int <i>bytesPerSlice</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QCLImage3D &amp; </td><td class="memItemRight bottomAlign"><b><a href="qclimage3d.html#operator-eq">operator=</a></b> ( const QCLImage3D &amp; <i>other</i> )</td></tr>
</table>
<ul>
<li class="fn">11 public functions inherited from <a href="qclmemoryobject.html#public-functions">QCLMemoryObject</a></li>
</ul>
<a name="details"></a>
<!-- $$$QCLImage3D-description -->
<div class="descr">
<h2>Detailed Description</h2>
<p>The QCLImage3D class represents a 3D OpenCL image object.</p>
</div>
<!-- @@@QCLImage3D -->
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QCLImage3D[overload1]$$$QCLImage3D -->
<h3 class="fn"><a name="QCLImage3D"></a>QCLImage3D::QCLImage3D ()</h3>
<p>Constructs a null 3D OpenCL image object.</p>
<!-- @@@QCLImage3D -->
<!-- $$$QCLImage3D$$$QCLImage3DQCLContext*cl_mem -->
<h3 class="fn"><a name="QCLImage3D-2"></a>QCLImage3D::QCLImage3D ( <a href="qclcontext.html">QCLContext</a> * <i>context</i>, cl_mem <i>id</i> )</h3>
<p>Constructs a 3D OpenCL image object that is initialized with the native OpenCL identifier <i>id</i>, and associates it with <i>context</i>. This class will take over ownership of <i>id</i> and will release it in the destructor.</p>
<!-- @@@QCLImage3D -->
<!-- $$$QCLImage3D$$$QCLImage3DconstQCLImage3D& -->
<h3 class="fn"><a name="QCLImage3D-3"></a>QCLImage3D::QCLImage3D ( const QCLImage3D &amp; <i>other</i> )</h3>
<p>Constructs a copy of <i>other</i>.</p>
<!-- @@@QCLImage3D -->
<!-- $$$bytesPerElement[overload1]$$$bytesPerElement -->
<h3 class="fn"><a name="bytesPerElement"></a>int QCLImage3D::bytesPerElement () const</h3>
<p>Returns the number of bytes per element in this OpenCL image.</p>
<p>See also <a href="qclimage3d.html#bytesPerLine">bytesPerLine</a>() and <a href="qclimage3d.html#bytesPerSlice">bytesPerSlice</a>().</p>
<!-- @@@bytesPerElement -->
<!-- $$$bytesPerLine[overload1]$$$bytesPerLine -->
<h3 class="fn"><a name="bytesPerLine"></a>int QCLImage3D::bytesPerLine () const</h3>
<p>Returns the number of bytes per line in this OpenCL image.</p>
<p>See also <a href="qclimage3d.html#bytesPerElement">bytesPerElement</a>() and <a href="qclimage3d.html#bytesPerSlice">bytesPerSlice</a>().</p>
<!-- @@@bytesPerLine -->
<!-- $$$bytesPerSlice[overload1]$$$bytesPerSlice -->
<h3 class="fn"><a name="bytesPerSlice"></a>int QCLImage3D::bytesPerSlice () const</h3>
<p>Returns the number of bytes per 2D slice in this 3D OpenCL image; 0 if the image is 2D.</p>
<p>See also <a href="qclimage3d.html#bytesPerElement">bytesPerElement</a>() and <a href="qclimage3d.html#bytesPerLine">bytesPerLine</a>().</p>
<!-- @@@bytesPerSlice -->
<!-- $$$copyTo[overload1]$$$copyToconstsize_t[3]constsize_t[3]constQCLImage3D&constsize_t[3] -->
<h3 class="fn"><a name="copyTo"></a>bool QCLImage3D::copyTo ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const QCLImage3D &amp; <i>dest</i>, const size_t[3] <i>destOffset</i> )</h3>
<p>Copies the contents of this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, to <i>destOffset</i> in <i>dest</i>. Returns true if the copy was successful; false otherwise.</p>
<p>This function will block until the request finishes. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#copyToAsync">copyToAsync</a>().</p>
<!-- @@@copyTo -->
<!-- $$$copyTo$$$copyToconstsize_t[3]constQSize&constQCLImage2D&constQPoint& -->
<h3 class="fn"><a name="copyTo-2"></a>bool QCLImage3D::copyTo ( const size_t[3] <i>origin</i>, const QSize &amp; <i>size</i>, const <a href="qclimage2d.html">QCLImage2D</a> &amp; <i>dest</i>, const QPoint &amp; <i>destOffset</i> )</h3>
<p>Copies the contents of a single slice within this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, to <i>destOffset</i> in <i>dest</i>. Returns true if the copy was successful; false otherwise.</p>
<p>This function will block until the request finishes. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#copyToAsync">copyToAsync</a>().</p>
<!-- @@@copyTo -->
<!-- $$$copyTo$$$copyToconstsize_t[3]constsize_t[3]constQCLBuffer&size_t -->
<h3 class="fn"><a name="copyTo-3"></a>bool QCLImage3D::copyTo ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const <a href="qclbuffer.html">QCLBuffer</a> &amp; <i>dest</i>, size_t <i>destOffset</i> )</h3>
<p>Copies the contents of this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, to <i>destOffset</i> in <i>dest</i>. Returns true if the copy was successful; false otherwise.</p>
<p>This function will block until the request finishes. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#copyToAsync">copyToAsync</a>().</p>
<!-- @@@copyTo -->
<!-- $$$copyToAsync[overload1]$$$copyToAsyncconstsize_t[3]constsize_t[3]constQCLImage3D&constsize_t[3]constQCLEventList& -->
<h3 class="fn"><a name="copyToAsync"></a><a href="qclevent.html">QCLEvent</a> QCLImage3D::copyToAsync ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const QCLImage3D &amp; <i>dest</i>, const size_t[3] <i>destOffset</i>, const <a href="qcleventlist.html">QCLEventList</a> &amp; <i>after</i> = QCLEventList() )</h3>
<p>Copies the contents of this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, to <i>destOffset</i> in <i>dest</i>. Returns true if the copy was successful; false otherwise.</p>
<p>This function will queue the request and return immediately. Returns an event object that can be used to wait for the request to finish.</p>
<p>The request will not start until all of the events in <i>after</i> have been signaled as finished. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#copyTo">copyTo</a>().</p>
<!-- @@@copyToAsync -->
<!-- $$$copyToAsync$$$copyToAsyncconstsize_t[3]constQSize&constQCLImage2D&constQPoint&constQCLEventList& -->
<h3 class="fn"><a name="copyToAsync-2"></a><a href="qclevent.html">QCLEvent</a> QCLImage3D::copyToAsync ( const size_t[3] <i>origin</i>, const QSize &amp; <i>size</i>, const <a href="qclimage2d.html">QCLImage2D</a> &amp; <i>dest</i>, const QPoint &amp; <i>destOffset</i>, const <a href="qcleventlist.html">QCLEventList</a> &amp; <i>after</i> = QCLEventList() )</h3>
<p>Copies the contents of a single slice within this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, to <i>destOffset</i> in <i>dest</i>. Returns true if the copy was successful; false otherwise.</p>
<p>This function will queue the request and return immediately. Returns an event object that can be used to wait for the request to finish.</p>
<p>The request will not start until all of the events in <i>after</i> have been signaled as finished. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#copyTo">copyTo</a>().</p>
<!-- @@@copyToAsync -->
<!-- $$$copyToAsync$$$copyToAsyncconstsize_t[3]constsize_t[3]constQCLBuffer&size_tconstQCLEventList& -->
<h3 class="fn"><a name="copyToAsync-3"></a><a href="qclevent.html">QCLEvent</a> QCLImage3D::copyToAsync ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const <a href="qclbuffer.html">QCLBuffer</a> &amp; <i>dest</i>, size_t <i>destOffset</i>, const <a href="qcleventlist.html">QCLEventList</a> &amp; <i>after</i> = QCLEventList() )</h3>
<p>Copies the contents of this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, to <i>destOffset</i> in <i>dest</i>. Returns true if the copy was successful; false otherwise.</p>
<p>This function will queue the request and return immediately. Returns an event object that can be used to wait for the request to finish.</p>
<p>The request will not start until all of the events in <i>after</i> have been signaled as finished. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#copyTo">copyTo</a>().</p>
<!-- @@@copyToAsync -->
<!-- $$$depth[overload1]$$$depth -->
<h3 class="fn"><a name="depth"></a>int QCLImage3D::depth () const</h3>
<p>Returns the depth of this 3D OpenCL image; 0 if the image is 2D.</p>
<p>See also <a href="qclimage3d.html#width">width</a>(), <a href="qclimage3d.html#height">height</a>(), and <a href="qclimage3d.html#bytesPerSlice">bytesPerSlice</a>().</p>
<!-- @@@depth -->
<!-- $$$format[overload1]$$$format -->
<h3 class="fn"><a name="format"></a><a href="qclimageformat.html">QCLImageFormat</a> QCLImage3D::format () const</h3>
<p>Returns the format descriptor for this OpenCL image.</p>
<!-- @@@format -->
<!-- $$$height[overload1]$$$height -->
<h3 class="fn"><a name="height"></a>int QCLImage3D::height () const</h3>
<p>Returns the height of this OpenCL image.</p>
<p>See also <a href="qclimage3d.html#width">width</a>() and <a href="qclimage3d.html#depth">depth</a>().</p>
<!-- @@@height -->
<!-- $$$map[overload1]$$$mapconstsize_t[3]constsize_t[3]QCLMemoryObject::Accessint*int* -->
<h3 class="fn"><a name="map"></a>void * QCLImage3D::map ( const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, <a href="qclmemoryobject.html#Access-enum">QCLMemoryObject::Access</a> <i>access</i>, int * <i>bytesPerLine</i> = 0, int * <i>bytesPerSlice</i> = 0 )</h3>
<p>Maps the image region starting at <i>origin</i> and extending for <i>size</i> into host memory for the specified <i>access</i> mode. Returns a pointer to the mapped region.</p>
<p>If <i>bytesPerLine</i> is not null, it will return the number of bytes per line in the mapped image. If <i>bytesPerSlice</i> is not null, it will return the number of bytes per slice in the mapped image.</p>
<p>This function will block until the request finishes. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#mapAsync">mapAsync</a>() and <a href="qclmemoryobject.html#unmap">unmap</a>().</p>
<!-- @@@map -->
<!-- $$$mapAsync[overload1]$$$mapAsyncvoid**constsize_t[3]constsize_t[3]QCLMemoryObject::AccessconstQCLEventList&int*int* -->
<h3 class="fn"><a name="mapAsync"></a><a href="qclevent.html">QCLEvent</a> QCLImage3D::mapAsync ( void ** <i>ptr</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, <a href="qclmemoryobject.html#Access-enum">QCLMemoryObject::Access</a> <i>access</i>, const <a href="qcleventlist.html">QCLEventList</a> &amp; <i>after</i> = QCLEventList(), int * <i>bytesPerLine</i> = 0, int * <i>bytesPerSlice</i> = 0 )</h3>
<p>Maps the image region starting at <i>origin</i> and extending for <i>size</i> into host memory for the specified <i>access</i> mode. Returns a pointer to the mapped region in <i>ptr</i>, which will be valid only after the request finishes.</p>
<p>If <i>bytesPerLine</i> is not null, it will return the number of bytes per line in the mapped image. If <i>bytesPerSlice</i> is not null, it will return the number of bytes per slice in the mapped image.</p>
<p>This function will queue the request and return immediately. Returns an event object that can be used to wait for the request to finish.</p>
<p>The request will not start until all of the events in <i>after</i> have been signaled as finished. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#map">map</a>() and <a href="qclmemoryobject.html#unmap">unmap</a>().</p>
<!-- @@@mapAsync -->
<!-- $$$read[overload1]$$$readvoid*constsize_t[3]constsize_t[3]intint -->
<h3 class="fn"><a name="read"></a>bool QCLImage3D::read ( void * <i>data</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, int <i>bytesPerLine</i> = 0, int <i>bytesPerSlice</i> = 0 )</h3>
<p>Reads the contents of this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, into <i>data</i>. Returns true if the read was successful; false otherwise. If <i>bytesPerLine</i> is not zero, it indicates the number of bytes between lines in <i>data</i>. If <i>bytesPerSlice</i> is not zero, it indicates the number of bytes between slices in <i>data</i>.</p>
<p>This function will block until the request finishes. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#readAsync">readAsync</a>() and <a href="qclimage3d.html#write">write</a>().</p>
<!-- @@@read -->
<!-- $$$readAsync[overload1]$$$readAsyncvoid*constsize_t[3]constsize_t[3]constQCLEventList&intint -->
<h3 class="fn"><a name="readAsync"></a><a href="qclevent.html">QCLEvent</a> QCLImage3D::readAsync ( void * <i>data</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const <a href="qcleventlist.html">QCLEventList</a> &amp; <i>after</i> = QCLEventList(), int <i>bytesPerLine</i> = 0, int <i>bytesPerSlice</i> = 0 )</h3>
<p>Reads the contents of this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, into <i>data</i>. Returns true if the read was successful; false otherwise. If <i>bytesPerLine</i> is not zero, it indicates the number of bytes between lines in <i>data</i>. If <i>bytesPerSlice</i> is not zero, it indicates the number of bytes between slices in <i>data</i>.</p>
<p>This function will queue the request and return immediately. Returns an event object that can be used to wait for the request to finish.</p>
<p>The request will not start until all of the events in <i>after</i> have been signaled as finished. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#read">read</a>() and <a href="qclimage3d.html#writeAsync">writeAsync</a>().</p>
<!-- @@@readAsync -->
<!-- $$$width[overload1]$$$width -->
<h3 class="fn"><a name="width"></a>int QCLImage3D::width () const</h3>
<p>Returns the width of this OpenCL image.</p>
<p>See also <a href="qclimage3d.html#height">height</a>(), <a href="qclimage3d.html#depth">depth</a>(), and <a href="qclimage3d.html#bytesPerLine">bytesPerLine</a>().</p>
<!-- @@@width -->
<!-- $$$write[overload1]$$$writeconstvoid*constsize_t[3]constsize_t[3]intint -->
<h3 class="fn"><a name="write"></a>bool QCLImage3D::write ( const void * <i>data</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, int <i>bytesPerLine</i> = 0, int <i>bytesPerSlice</i> = 0 )</h3>
<p>Writes the contents of this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, to <i>data</i>. Returns true if the write was successful; false otherwise. If <i>bytesPerLine</i> is not zero, it indicates the number of bytes between lines in <i>data</i>. If <i>bytesPerSlice</i> is not zero, it indicates the number of bytes between slices in <i>data</i>.</p>
<p>This function will block until the request finishes. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#read">read</a>() and <a href="qclimage3d.html#writeAsync">writeAsync</a>().</p>
<!-- @@@write -->
<!-- $$$writeAsync[overload1]$$$writeAsyncconstvoid*constsize_t[3]constsize_t[3]constQCLEventList&intint -->
<h3 class="fn"><a name="writeAsync"></a><a href="qclevent.html">QCLEvent</a> QCLImage3D::writeAsync ( const void * <i>data</i>, const size_t[3] <i>origin</i>, const size_t[3] <i>size</i>, const <a href="qcleventlist.html">QCLEventList</a> &amp; <i>after</i> = QCLEventList(), int <i>bytesPerLine</i> = 0, int <i>bytesPerSlice</i> = 0 )</h3>
<p>Writes the contents of this 3D image, starting at <i>origin</i>, and extending for <i>size</i>, to <i>data</i>. Returns true if the write was successful; false otherwise. If <i>bytesPerLine</i> is not zero, it indicates the number of bytes between lines in <i>data</i>. If <i>bytesPerSlice</i> is not zero, it indicates the number of bytes between slices in <i>data</i>.</p>
<p>This function will queue the request and return immediately. Returns an event object that can be used to wait for the request to finish.</p>
<p>The request will not start until all of the events in <i>after</i> have been signaled as finished. The request is executed on the active command queue for <a href="qclmemoryobject.html#context">context</a>().</p>
<p>See also <a href="qclimage3d.html#readAsync">readAsync</a>() and <a href="qclimage3d.html#write">write</a>().</p>
<!-- @@@writeAsync -->
<!-- $$$operator=[overload1]$$$operator=constQCLImage3D& -->
<h3 class="fn"><a name="operator-eq"></a>QCLImage3D &amp; QCLImage3D::operator= ( const QCLImage3D &amp; <i>other</i> )</h3>
<p>Assigns <i>other</i> to this object.</p>
<!-- @@@operator= -->
</div>
<p /><address><hr /><div align="center">
<table width="100%" cellspacing="0" border="0"><tr class="address">
<td align="left">Copyright &copy; 2010 Nokia Corporation</td>
<td align="right">QtOpenCL Documentation</td>
</tr></table></div></address>  <script src="scripts/functions.js" type="text/javascript"></script>
  <script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-4457116-5']);
  _gaq.push(['_trackPageview']);
  (function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
  </script>
</body>
</html>
